home *** CD-ROM | disk | FTP | other *** search
/ Sound Fx / Sound Fx.iso / Software / UNZIPED / DWSTK / ERR.BAS < prev    next >
BASIC Source File  |  1996-10-10  |  8KB  |  192 lines

  1. '******************************************************************************
  2. 'File:      err.bas
  3. 'Version:   2.22
  4. 'Tab stops: every 2 columns
  5. 'Project:   any STK related code
  6. 'Copyright: 1994-1995 DiamondWare, Ltd.  All rights reserved.
  7. 'Written:   Keith Weiner & Erik Lorenzen
  8. 'Purpose:   Contains a routine to handle any error generated by the STK
  9. 'History:   94/10/21 KW Started
  10. '           95/02/21 EL Finalized for 1.00
  11. '           95/03/18 EL Added new error to err_Display(), dws_BUSY
  12. '           95/03/22 EL Finalized for 1.01
  13. '           95/04/06 EL Added new error to err_Display(), dws_MUSTBECLI
  14. '           95/04/11 EL moved DisplayError to err.c (err_Display).
  15. '           95/04/11 EL Finalized for 1.02
  16. '           95/06/06 EL Finalized for 1.03, no changes
  17. '           95/06/06 EL Finalized for 2.00, no changes
  18. '           95/10/07 EL Finalized for 2.10, no changes
  19. '           95/10/24 EL Finalized for 2.20, updated comments to those in err.c
  20. '           95/12/07 EL Finalized for 2.21, no changes
  21. '           96/10/10 EL Finalized for 2.22, no changes
  22. 'Notes
  23. '-----
  24. '*Permission is expressely granted to use err_Display or any derivitive made
  25. ' from it to registered users of the STK.
  26. '******************************************************************************
  27.  
  28.  
  29.  
  30. '$INCLUDE: 'dws.bi'
  31.  
  32.  
  33.  
  34. SUB errDisplay
  35.  
  36.     errornum = dwsErrNo
  37.  
  38.     SELECT CASE errornum
  39.  
  40.         CASE dwsEZERO
  41.             'This should not have happened, considering how we got here!
  42.             PRINT"DWS: I'm confused!  There is no error number!"
  43.  
  44.         CASE dwsNOTINITTED
  45.             'If we get here, it means you haven't called dwsInit().
  46.             'The STK needs to initialize itself and the hardware before
  47.             'it can do anything.
  48.             PRINT"DWS: The STK was not initialized"
  49.  
  50.         CASE dwsALREADYINITTED
  51.             'If we get here, it means you've called dwsInit() already.    Calling
  52.             'dwsDetectHardWare() at this point would cause zillions of
  53.             'problems if we let the call through.
  54.             PRINT"DWS: The STK was already initialized"
  55.  
  56.         CASE dwsNOTSUPPORTED:
  57.             'If we get here, it means that either the user's machine does not
  58.             'support the function you just called, or the STK was told not to
  59.             'support it in dwsInit.
  60.             PRINT"DWS: Function not supported"
  61.  
  62.         CASE dwsDetectHardwareUNSTABLESYSTEM
  63.             ' Please report it to DiamondWare if you get here!
  64.             '
  65.             ' Ideally, you would disable control-C here, so that the user can't
  66.             ' hit control-alt-delete, causing SmartDrive to flush its (possibly
  67.             ' currupt) buffers.
  68.             PRINT"DWS: The system (or DOS box) is unstable!"
  69.             PRINT"     If not in a multitasking system, please power down!"
  70.  
  71.             AGAIN:
  72.             GOTO AGAIN
  73.  
  74.         'The following three errors are USER/PROGRAMMER errors.  You forgot
  75.         'to fill the cardtyp struct full of -1's (except in those fields
  76.         'you intended to override, or the user (upon the unlikly event that
  77.         'the STK was unable to find a card) gave you a bad overide value.
  78.  
  79.         CASE dwsDetectHardwareBADBASEPORT
  80.             'You set dov.baseport to a bad value, or
  81.             'didn't fill it with a -1.
  82.             PRINT"DWS: Bad port address"
  83.  
  84.         CASE dwsDetectHardwareBADDMA
  85.             'You set dov.digdma to a bad value, or
  86.             'didn't fill it with a -1.
  87.             PRINT"DWS: Bad DMA channel"
  88.  
  89.         CASE dwsDetectHardwareBADIRQ
  90.             'You set dov.digirq to a bad value, or
  91.             'didn't fill it with a -1.
  92.             PRINT"DWS: Bad IRQ level"
  93.  
  94.         CASE dwsKillCANTUNHOOKISR
  95.             'The STK points the interrupt vector for the sound card's IRQ
  96.             'to its own code in dws_Init.
  97.             '
  98.             'dws_Kill was unable to restore the vector to its original
  99.             'value because other code has hooked it after the STK
  100.             'initialized(!)  This is really bad.  Make the user get rid
  101.             'of it and call dws_Kill again.
  102.  
  103.             PRINT"DWS: Get rid of your TSR, pal!"
  104.             INPUT"(Hit ENTER when ready)";g$
  105.  
  106.         CASE dwsXBADINPUT
  107.             'The mixer funtion's can only accept volumes between 0 & 255,
  108.             'the volume will remain unchanged.
  109.  
  110.             PRINT"DWS: Bad mixer level"
  111.  
  112.         CASE dwsDNOTADWD
  113.             'You passed the STK a pointer to something which is not a .DWD file!
  114.             PRINT"DWS: Pointer does not point to a .DWD"
  115.  
  116.         CASE dwsDNOTSUPPORTEDVER
  117.             'The STK can't play a .DWD converted using a version of VOC2DWD.EXE
  118.             'newer than itself.  And, although we'll try to maintain backwards
  119.             'compatibility, we may not be able to guarantee that newer versions
  120.             'of the code will be able to play older .DWD files.  In any event,
  121.             'it's a good idea to always convert .VOC files with the utility
  122.             'which comes with the library you're linking into your application.
  123.             PRINT"DWS: Please reconvert this file using the VOC2DWD.EXE"
  124.             PRINT"     program which came with this library"
  125.  
  126.         CASE dwsDINTERNALERROR
  127.             'This error should never occur and probably will not affect sound
  128.             'play(?). If it happens please contact DiamondWare.
  129.             PRINT"DWS: An internal error has occured"
  130.             PRINT"     Please contact DiamondWare"
  131.  
  132.         CASE dwsDPlayNOSPACEFORSOUND
  133.             'This error is more like a warning, though it may happen on a
  134.             'regular basis, depending on how many sounds you told the STK
  135.             'to allow in dws_Init, how you chose to prioritize sounds and
  136.             'how many sounds are currently being played.
  137.             PRINT"DWS: No more room for new digitized sounds right now"
  138.  
  139.         CASE dwsDSetRateFREQTOLOW
  140.             'The STK will set rate as close as possible to the indicated rate
  141.             'but cannot set a rate that low.
  142.             PRINT"DWS: Playback frequency too low"
  143.  
  144.         CASE dwsDSetRateFREQTOHIGH
  145.             'The STK will set rate as close as possible to the indicated rate
  146.             'but cannot set a rate that high.
  147.             PRINT"DWS: Playback frequency too high"
  148.  
  149.         CASE dwsMPlayNOTADWM
  150.             'You passed the STK a pointer to something which is not a .DWM file!
  151.             PRINT"DWS: Pointer does not point to a .DWM"
  152.  
  153.         CASE dwsMPlayNOTSUPPORTEDVER
  154.             'The STK can't play a .DWM converted using a version of VOC2DWM.EXE
  155.             'newer than itself.  And, although we'll try to maintain backwards
  156.             'compatibility, we may not be able to guarantee that newer versions
  157.             'of the code will be able to play older .DWM files.  In any event,
  158.             'it's a good idea to always convert .MID files with the utility
  159.             'which comes with the library you're linking into your application.
  160.             PRINT"DWS: Please reconvert this file using the MID2DWM.EXE"
  161.             PRINT"     which came with this library"
  162.  
  163.         CASE dwsMPlayINTERNALERROR:
  164.             'This error should never occur and probably will not affect sound
  165.             'play(?). If it happens please contact DiamondWare.
  166.             PRINT"DWS: An internal error has occured."
  167.             PRINT"     Please contact DiamondWare."
  168.  
  169.         CASE dwsBUSY:
  170.             'Can only occur when DWS is being called from the background
  171.             '(within an ISR--possibly timer or keyboard handler.)  If you get
  172.             'this error, do your IRET, and call again from your next interrupt.
  173.             'Repeat until successful.
  174.             PRINT"DWS: Busy now, please call again later."
  175.  
  176.         CASE dwsIRQDISABLED:
  177.             'The following error may be triggered by dws_Init, dws_Kill,
  178.             'or dws_DetectHardWare.  It occurs if interrupts are disabled.
  179.             'Enable interrupts (execute the STI instruction) and call again.
  180.             PRINT"DWS: Interrupts are disabled."
  181.  
  182.         CASE ELSE
  183.             'If this function was clipped intact from err.c, this case
  184.             'should never occur and probably will not affect sound play(?)
  185.             'If it happens please contact DiamondWare.
  186.             PRINT"DWS: I'm confused!  Where am I?  HOW DID I GET HERE????"
  187.             PRINT"     The ERROR number is:";errornum
  188.  
  189.     END SELECT
  190.  
  191. END SUB
  192.